package com.mall4j.cloud.product.dto;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.UUID;

/**
 * 开放接口 资源DTO
 *
 * @author yangjs
 * @email catalpa65@163.com
 * @date 2023-02-22 17:17:33
 */
@Data
public class RequestResourceDTO implements Serializable {
    private static final long serialVersionUID = 1L;

    //测试使用
    public RequestResourceDTO getMock() {
        RequestResourceDTO one = new RequestResourceDTO();
        one.setClientId("001");
        one.setResourceId(UUID.randomUUID() + "");
        one.setProductName("热轧带钢");
        one.setMaterial("Q235B");
        one.setSpec("2.75*102*C");
        one.setPlace("鞍钢朝阳");
        one.setWarehouse("隆兴库");

        one.setWeight(new BigDecimal("10.01"));
        one.setNumber(666);
        one.setRetailType(0);
        one.setPriceType(0);
        one.setPrice(new BigDecimal("10.01"));

        one.setResourceType(0);
        one.setRollNum("666");
        one.setPackageNum("666");
        one.setState(0);
        return one;
    }

    /**
     * 对接方id
     */
    @NotBlank(message = "对接方id不允许为空")
    private String clientId;

    /**
     * erp资源唯一id
     */
    @NotBlank(message = "erp资源唯一id不允许为空")
    private String resourceId;

    /**
     * 品名
     */
    @NotBlank(message = "品名不允许为空")
    private String productName;
    /**
     * 材质
     */
    @NotBlank(message = "材质不允许为空")
    private String material;
    /**
     * 规格
     */
    @NotBlank(message = "规格不允许为空")
    private String spec;
    /**
     * 产地
     */
    @NotBlank(message = "产地不允许为空")
    private String place;
    /**
     * 仓库
     */
    @NotBlank(message = "仓库不允许为空")
    private String warehouse;

    /**
     * 重量
     */
    @NotNull(message = "重量不允许为空")
    private BigDecimal weight;
    /**
     * 数量
     */
    @NotNull(message = "数量不允许为空")
    private Integer number;
    /**
     * 零售方式 0整包 1按重量 2按数量
     * 0 整包卖，数量重量原始传过来
     * 1 如果按照重量卖，数量可以四舍五入取整（最小1）作为参考
     * 2 如果按数量卖，重量必须严格换算！
     */
    @NotNull(message = "零售方式不允许为空")
    private Integer retailType;
    /**
     * 计价方式 1重量计价 2数量计价
     */
    @NotNull(message = "计价方式不允许为空")
    private Integer priceType;
    /**
     * 价格
     */
    @NotNull(message = "价格不允许为空")
    private BigDecimal price;

    /**
     * 资源类型 1现货 2在途 3远月 4期货
     */
    @NotNull(message = "资源类型不允许为空")
    private Integer resourceType;

    /**
     * 钢卷号
     */
    private String rollNum;
    /**
     * 捆包号
     */
    private String packageNum;

    /**
     * 交货天数
     */
    private BigDecimal deliveryDay;

    /**
     * 供应商联系人
     */
    private String supplierName;
    /**
     * 供应商手机号
     */
    private String supplierPhone;
    /**
     * 层数
     */
    private Integer plies;
    /**
     * 资源状态 0下架 1上架
     */
    @NotNull(message = "资源状态不允许为空")
    private Integer state;
}
